home *** CD-ROM | disk | FTP | other *** search
- package org.apache.xalan.xpath;
-
- import java.io.BufferedInputStream;
- import java.io.FilterInputStream;
- import java.io.InputStream;
- import java.util.Properties;
- import java.util.Vector;
- import org.w3c.dom.Node;
- import org.xml.sax.SAXException;
-
- public class FuncSystemProperty extends Function {
- Properties xsltInfo = new Properties();
- static String XSLT_PROPERTIES = "/org/apache/xalan/xpath/xml/XSLTInfo.properties";
-
- public XObject execute(XPath var1, XPathSupport var2, Node var3, int var4, Vector var5) throws SAXException {
- String var6 = ((XObject)var5.elementAt(0)).str();
- int var7 = var6.indexOf(58);
- String var9 = "";
- this.loadPropertyFile(XSLT_PROPERTIES, this.xsltInfo);
- String var8;
- if (var7 > 0) {
- String var10 = var7 >= 0 ? var6.substring(0, var7) : "";
- String var11 = var2.getNamespaceContext().getNamespaceForPrefix(var10);
- var9 = var7 < 0 ? var6 : var6.substring(var7 + 1);
- if (!var11.startsWith("http://www.w3.org/XSL/Transform") && !var11.equals("http://www.w3.org/1999/XSL/Transform")) {
- var1.warn(3, new Object[]{var11, var6});
-
- try {
- var8 = System.getProperty(var9);
- if (var8 == null) {
- var8 = "";
- }
- } catch (SecurityException var14) {
- var1.warn(4, new Object[]{var6});
- var8 = "";
- }
- } else {
- var8 = this.xsltInfo.getProperty(var9);
- if (var8 == null) {
- var1.warn(2, new Object[]{var6});
- var8 = "";
- }
- }
- } else {
- try {
- var8 = System.getProperty(var6);
- if (var8 == null) {
- var8 = "";
- }
- } catch (SecurityException var13) {
- var1.warn(4, new Object[]{var6});
- var8 = "";
- }
- }
-
- if (var9.equals("version") && var8.length() > 0) {
- try {
- return new XNumber(new Double(var8));
- } catch (Exception var12) {
- return new XString(var8);
- }
- } else {
- return new XString(var8);
- }
- }
-
- public void loadPropertyFile(String var1, Properties var2) {
- try {
- InputStream var3 = this.getClass().getResourceAsStream(var1);
- BufferedInputStream var4 = new BufferedInputStream(var3);
- var2.load(var4);
- ((FilterInputStream)var4).close();
- } catch (Exception var5) {
- ((Throwable)var5).printStackTrace();
- }
- }
- }
-